/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package managertelaCadastros;

import classes.Cidade;
import classes.Cliente;
import dao.DaoCliente;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import managerPesquisa.managerPesquisaCidade;
import telaCadastros.CadCliente;
import util.Mensagem;
import util.Publico;

/**
 *
 * @author fumio
 */
public class managerCadCliente implements interfaceManager {

    private Cliente cliente;
    private static CadCliente cadCliente;
    private DaoCliente daocliente = new DaoCliente();
    private Cidade cidade;

    public managerCadCliente(Cliente ccliente) {
        cadCliente = CadCliente.getInstance(this);
        if (cliente == null) {
            cliente = new Cliente();
        } else {
            cliente = ccliente;
            getData();
        }
        cadCliente.setVisible(true);

    }

    @Override
    public boolean salvar() {
        boolean resultado;
        try {
            if (cliente == null) {
                cliente = new Cliente();
            }

           Mensagem.registroConfirmado("Cliente");
           resultado = true;

        } catch (Exception e) {
            Mensagem.registroNaoConfirmado("Cliente");
            resultado = false;
        }

        return resultado;

    }

    @Override
    public List carregar() {
        throw new UnsupportedOperationException("Not supported yet.");
    }
    
    @Override
    public final void getData(){
        cadCliente.edtCnpj.setText(cliente.getCpf().toString());
        cadCliente.edtNascimento.setText(cliente.getDataNascimento().toString());
        cadCliente.edtNome.setText(cliente.getNome().toString());
        cadCliente.edtRG.setText(cliente.getRg().toString().toString());
        cadCliente.cmbUfExp.setSelectedItem(cliente.getUfExpedidor().toString());
        cadCliente.edtEndereco.setText(cliente.getEndereco().toString());
        cadCliente.edtNumEndereco.setText(cliente.getNumEndereco().toString());
        cadCliente.edtBairro.setText(cliente.getBairro().toString());
        cadCliente.edtCodigoCidade.setText(cliente.getCidade().getCodigo().toString());
        cadCliente.edtCidade.setText(cliente.getCidade().getCidade().toString());
        cadCliente.edtUF.setText(cliente.getCidade().getUf().toString());
    }

    @Override
    public boolean setData() {
        cliente.setCpf(Long.parseLong(Publico.NoMask(cadCliente.edtCnpj.getText())));
        try {
            cliente.setDataNascimento(Publico.ConverteDate(cadCliente.edtNascimento.getText()));
        } catch (Exception ex) {
            Logger.getLogger(managerCadCliente.class.getName()).log(Level.SEVERE, null, ex);
        }
        cliente.setNome(cadCliente.edtNome.getText());
        cliente.setEndereco(cadCliente.edtEndereco.getText());
        cliente.setNumEndereco(cadCliente.edtNumEndereco.getText());
        cliente.setComplemento(cadCliente.edtComplemento.getText());
        cliente.setBairro(cadCliente.edtBairro.getText());
        cliente.setCidade(cidade);
        cliente.setRg(Long.parseLong(cadCliente.edtRG.getText()));
        cliente.setUfExpedidor(cadCliente.cmbUfExp.getSelectedItem().toString());
        cliente.setObservacao(cadCliente.edtObservacao.getText());
        // Aba Profissionais
        cliente.setEmpresa(cadCliente.edtEmpresa.getText());
        cliente.setCargo(cadCliente.edtCargo.getText());
        cliente.setContato(cadCliente.edtContato.getText());
        cliente.setRemuneracao(Double.parseDouble(cadCliente.edtRemuneracao.getText()));
        cliente.setTelefone(Integer.parseInt(cadCliente.edtTelefone.getText()));
        cliente.setRamal(Integer.parseInt(cadCliente.edtRamal.getText()));
        return true;

    }

    public void carregaPesquisaCidade() {
        managerPesquisaCidade pesquisa = new managerPesquisaCidade();
        cidade = pesquisa.managerPesquisaCidade();
        cadCliente.edtCodigoCidade.setText(cidade.getCodigo().toString());
        cadCliente.edtCidade.setText(cidade.getCidade());
        cadCliente.edtUF.setText(cidade.getUf());

    }


}
